1. Field of Art
The disclosure generally relates to the field of programming languages and more specifically to communicating between two different programming languages.
2. Description of the Related Art
Software applications are typically released and distributed as binary executable files. Developers compile code into a binary executable file, and users download and run the compiled application binary on their client devices. A similar process of compiling before public release is used to distribute updates and patches to software application. While this process allows developers to protect their source code and provides users with an executable that runs natively on their client devices, the process also comes with a number of restrictions and drawbacks that make it unappealing for certain platforms.
One drawback is that some operating systems place restrictions on the transfer of executable binaries to client devices as a method of preventing users from running unauthorized code. Operating system developers may put these restrictions in place as a safeguard against the spread of viruses or other malicious code, or they may simply use these restrictions as a way of exerting more control over the operating system. In some cases, the operating system may include a centralized distribution service to manage the distribution of executable binaries, and the binaries being distributed may be subject to review and approval by administrators of the distribution service. For example, the APPLE iOS mobile operating system includes an APP STORE for distributing applications and updates, and content posted to the APP STORE undergoes an approval process before being distributed to users. In other cases, the operating system allows the user to freely download executable binaries, but the operating system may prompt the user for an administrator password or some other sort of authorization before executing a new application or applying an update to an existing application.
These restrictions make it difficult for software developers to distribute executable binaries. In particular, the process of releasing and distributing updates and patches may become significantly slower if the update is subject to a review process or if the update requires user authorization before being applied. As a result, it is difficult to rapidly distribute updates to users. In addition, if a developer wishes to distribute an update that is customized to a user's device configuration, location, or demographic information, each permutation of the customized update may have to undergo the review process before being distributed.